Given an integer arraynums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.

Example:

Input:
 [-2,1,-3,4,-1,2,1,-5,4],

Output:
 6

Explanation:
 [4,-1,2,1] has the largest sum = 6.

Follow up:

If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.

class Solution {

public:

int maxSubArray\(vector<int>& nums\) {

    int result=nums\[0\];

    int dp\[nums.size\(\)\];

    dp\[0\]=nums\[0\];



    for \(int i=1;i<nums.size\(\);i++\){

       if \(\(dp\[i-1\]+nums\[i\]\)>=nums\[i\]\){

           dp\[i\]=dp\[i-1\]+nums\[i\];

       }

         else{

             dp\[i\]=nums\[i\];

         } 

        result=max\(result,dp\[i\]\);

      //cout<<dp\[i\]<<endl;

       }

    return result;

}

};

results matching ""

    No results matching ""